// highp -2^16 - 2^16
// mediump -2^10 - 2^10
// lowp -2^8 - 2^8
precision lowp float; // 指定精度
varying vec2 v_uv; // 接收顶点着色器传入的数据

float random (vec2 st) {
    return fract(sin(dot(st.xy,vec2(12.9898,78.233)))*43758.5453123);
}
void main(){
    // 1、利用UV做出过度效果
    // gl_FragColor = vec4(v_uv,0.0,1.0);
    // 2、黑白过度效果
    // gl_FragColor = vec4(v_uv.x,v_uv.x,v_uv.x,1.0);
    // 3、利用取模短范围内渐变效果
    // float strength = mod(v_uv.x*10.0,1.0);
    // gl_FragColor = vec4(strength,strength,strength,1.0);

    // 4、利用step函数做出斑马线效果   step(edge, x)：如果x小于边界值，则返回0，否则返回1
    // float strength = step(0.8,mod(v_uv.x*10.0,1.0));
    // strength += step(0.8,mod(v_uv.y*10.0,1.0));
    // gl_FragColor = vec4(strength,strength,strength,1.0);

    // 5、利用绝对值做出左右过度效果
    // float strength = abs(v_uv.x-0.5);
    // gl_FragColor = vec4(strength,strength,strength,1.0);

    // 6、利用min函数做出十字交叉的过度效果
    // float strength = min(abs(v_uv.x-0.5),abs(v_uv.y-0.5));
    // float strength = max(abs(v_uv.x-0.5),abs(v_uv.y-0.5));
    // float strength = step(0.2,max(abs(v_uv.x-0.5),abs(v_uv.y-0.5)));
    // gl_FragColor = vec4(strength,strength,strength,1.0);

    // 7、利用取整，实现条纹渐变
    // float strength = floor(v_uv.y*10.0)/10.0*floor(v_uv.x*10.0)/10.0;
    // gl_FragColor = vec4(strength,strength,strength,1.0);

    // 8、利用随机函数做出噪声的效果
    // float strength = random(v_uv);
    // gl_FragColor = vec4(strength,strength,strength,1.0);
    // 9、随机+格子效果
    // float strength = floor(v_uv.y*10.0)/10.0*floor(v_uv.x*10.0)/10.0;
    // strength = random(vec2(strength,strength));
    // gl_FragColor = vec4(strength,strength,strength,1.0);

    // 10、根据length返回向量的长度
    // float strength = length(v_uv);
    // gl_FragColor = vec4(strength,strength,strength,1.0);

    // 11、根据distance计算出两个向量的距离
    // float strength = 1.0 - distance(v_uv,vec2(0.5,0.5));
    // gl_FragColor = vec4(strength,strength,strength,1.0);

    // 12、根据相除实现太阳发光效果
    float strength = 0.15 / distance(v_uv,vec2(0.5,0.5));
    gl_FragColor = vec4(strength,strength,strength,1.0);
}